1. Field of the Invention
The present invention relates to printers, printer drivers, and recording media on which printer driver programs are recorded, and more particularly to a printer capable of communicating with a host information processor via a given communication medium, a printer driver runs on the host information processor, and a recording medium on which a program for realizing the printer driver is recorded.
2. Description of the Background Art
As is well-known, a user is expected to construct a system environment where a separately-provided printer is connected to a host information processor (hereinafter, referred to as host PC) in advance for printing graphics and text created in the host PC, typically a personal computer.
Referring to FIG. 24, described below is the conventional system environment where a host PC is connected to a printer. Note that, in this application, a processing program as software is referred to as a “printer driver program”, and hardware structure realized by the printer driver program is referred to as a “printer driver”.
FIG. 24 is a block diagram exemplarily showing the configuration of the conventional system environment. In FIG. 24, a host PC 2000 and a printer 3000 are interconnected via a communication medium. The host PC 2000 is provided with a comprehensive control part 2001, an application print data generation part 2002, a display part 2003, an input part 2004, and a printer driver 2100. The printer driver 2100 is structured by a bi-directional communication part 2101, a control language interpretation part 2103, a printer settings storage part 2106, a printer language generation part 2107, and a control language generation part 2108. On the other hand, the printer 3000 is provided with a bi-directional communication part 3006, a communication data determination part 3007, a control language interpretation part 3008, a printer status storage part 3009, a control language generation part 3010, an image generation control part 3011, and a printer engine 3012.
First, it is described how the conventional host PC 2000 is operated to print. When the input part 2004 receives a user's instruction for printing executed on an application, the comprehensive control part 2001 instructs the application print data generation part 2002 to generate application print data corresponding to the description in the application, and then outputs the application print data to the printer language generation part 2107 along with a print request. In the printer settings storage part 2106, information unique to the printer 3000 is stored beforehand, e.g., printer language interpretable by the printer, information relevant to a font internally stored in the printer, or information indicating how capable the printer is in the terms of paper size or resolution. In the printer language generation part 2107, the received application print data is converted into printer language print data written in printer language (representing plot objects to be printed) according to the information stored in the printer settings storage part 2106. In the control language generation part 2108, according also to the information stored in the printer settings storage part 2106, control language print data for controlling the printer 3000 is generated from the application print data to select input/output trays or toner concentration, for example. The data is written in control language (representing printer control, such as paper selection for printing, or final touch setting for designating printing format). Such printer language print data and control language print data are transmitted through the bi-directional communication part 2101 to the printer 3000 as communication data.
Next, it is described how the conventional printer 3000 is operated to print. The bi-directional communication part 3006 receives the communication data from the host PC 2000, and then outputs the data to the communication data determination part 3007. After receiving the communication data, the communication data determination part 3007 determines whether or not the communication data is the printer language print data or the control language print data. If determined the communication data as being the printer language print data, the communication data determination part 3007 outputs the data to the image generation control part 3011. Otherwise, the communication data is outputted to the control language interpretation part 3008. In the printer status storage part 3009, current status of the printer 3000 for every setting is stored. In the control language interpretation part 3008, the communication data provided from the communication data determination part 3007, i.e., the control language print data, is interpreted so as to output information relevant to the description thereof (response) directly to the control language generation part 3010 (in a case where the information is relevant to the online/offline status), or via the printer status storage part 3009 (in a case where the information is relevant to the currently selected paper size). In the control language generation part 3010, the information received from the control language interpretation part 3008 or the printer status storage part 3009 is converted into control language data in a predetermined format for output to the bi-directional communication part 3006. The image generation control part 3011 is structured by a printer language interpretation part, an image generation part, and an image memory (not shown), for example, and the communication data provided from the communication data determination part 3007, i.e., the printer language print data is interpreted therein, and then the printer engine 3012 is controlled in accordance with the description thereof. The printer engine 3012 is a mechanism to print paper, and is operated to print the plot objects under the control of the image generation control part 3011.
On the other hand, the control language is also used when the host PC 2000 inquires about the inner state of the printer 3000, e.g., online/offline, job processing, availability of a perfecting press unit, or internally-provided memory capacity. If this is the case, upon inquiry from the comprehensive control part 2001 of the host PC 2000, the control language generation part 2108 generates control language data for transmission to the printer 3000 via the bi-directional communication part 2101.
A response from the printer 3000 to the inquiry is provided to the bi-directional communication part 2101, interpreted in the control language interpretation part 2103, and then forwarded to the comprehensive control part 2001. Thereafter, the response is displayed, as appropriate, in the display part 2003.
Typically, the printer driver 2100 (a dotted part in FIG. 24) is structurally realized in such manner that a printer driver program runs on the host PC 2000 and is stored in a not-shown arbitrary memory accessible by the host PC 2000, and then the program is interpreted and executed by a not-shown CPU of the host PC 2000.
Therefore, a user is expected to install or set-up any printer driver program provided by his/her printer manufacturer (in a portable recording medium, such as floppy disk or CD-ROM, or a communication medium) in advance (when constructing system environment) into the host PC 2000.
Generally, the printer language and the control language transmitted/received to/from the host PC and the printer are dependent on who is the printer manufacturer or the characteristics and resources of the printer, for example, and thus are heavily restricted and varied in specification. Accordingly, the host PC needs to change the printer language data and the control language data stored therein (in the printer settings storage part 2106) for every printer even if the printer driver (OS relevant to printer) therein remains structurally the same. To be more specific, the host PC needs to have printer drivers (programs) varied in type for every printer in use.
This makes managing driver data complicated, and also wastes the limited storage resources of the host PC.
Especially, in a case where a single printer is connected to a plurality of host PCs via an interface, such as network, every host PC needs to install and set each different printer driver (program) therein, thereby rendering even simple data change cumbersome.
Further, even when the printer driver (program) has been set-up, the printer may not properly process print data provided from the host PC for some unexpected reasons and cause a print error. To avoid such error, a printer firmware on the printer or a printer driver (program) on the host PC are usually re-installed or re-set (upgraded). The problem herein is, however, upgrading the printer driver (program) is cumbersome, and waiting is inevitable if software for upgrading is not yet available.